Skip to content

Conversation

@aelmanaa
Copy link
Collaborator

@aelmanaa aelmanaa commented Jan 6, 2026

This pull request introduces a new package, @chainlink/ccip-config, and adds a powerful chain discovery and lookup feature to the CLI. It also integrates the new package into the CI pipeline and refactors the send command to auto-detect routers, improving usability and maintainability. The changes span documentation, workflow configuration, dependencies, and CLI command implementations.

New package and CLI features:

  • Added the @chainlink/ccip-config package, providing a registry of chain deployments with router addresses and display names. This enables tree-shakable imports and lookup utilities such as getDeploymentByName, getRouter, and requireRouter. [1] [2]
  • Introduced the new chains CLI command, allowing users to list, search, filter, and interactively browse CCIP chain configurations, including router addresses. Features include fuzzy search, JSON output, and field extraction. [1] [2]

Refactoring and integration:

  • Refactored the send CLI command to auto-detect the router address from ccip-config if not provided, simplifying usage and improving reliability. Also updated logic to use the new package for router and chain information. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

Continuous Integration (CI) enhancements:

  • Updated CI workflow to validate package exports for both ccip-sdk and the new ccip-config package using publint and @arethetypeswrong/cli. [1] [2]

Dependency updates:

  • Added @chainlink/ccip-config and fuse.js as dependencies in ccip-cli/package.json to support new features and fuzzy search. [1] [2]

References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]

@aelmanaa aelmanaa requested a review from a team as a code owner January 6, 2026 12:49
@vercel
Copy link

vercel bot commented Jan 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
ccip-tools-ts Error Error Jan 6, 2026 0:55am

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

👋 aelmanaa, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

Coverage Report

ℹ tests 694
ℹ suites 220
ℹ pass 694
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 186941.652193
-------------------------------|---------|----------|---------|---------|---------------------------
File                           | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s         
-------------------------------|---------|----------|---------|---------|---------------------------
All files                      |   67.73 |    80.37 |   57.49 |   67.73 |                           
 ccip-cli/src                  |   89.07 |    85.71 |      50 |   89.07 |                           
  config-loader.ts             |     100 |      100 |     100 |     100 |                           
  index.ts                     |   86.45 |    83.33 |      50 |   86.45 | 72-76,82-83,88-93         
 ccip-cli/src/commands         |   49.23 |    79.55 |      50 |   49.23 |                           
  chains.ts                    |   25.63 |      100 |       0 |   25.63 | ...,87-89,101-242,248-277 
  index.ts                     |     100 |      100 |     100 |     100 |                           
  lane-latency.ts              |   67.74 |     87.5 |   33.33 |   67.74 | 23-37,44-51,85-91         
  manual-exec.ts               |      21 |      100 |       0 |      21 | 42-106,113-123,125-236    
  parse.ts                     |   41.79 |      100 |       0 |   41.79 | 22-26,33-40,42-67         
  send.ts                      |   12.01 |      100 |       0 |   12.01 | 37-138,145-152,154-358    
  show.ts                      |   89.61 |    63.82 |      60 |   89.61 | ...23-129,135-137,146-147 
  supported-tokens.ts          |   23.48 |      100 |       0 |   23.48 | ...83-175,177-232,234-247 
  types.ts                     |     100 |      100 |     100 |     100 |                           
  utils.ts                     |   86.59 |    84.03 |    91.3 |   86.59 | ...99-517,524-532,542-548 
 ccip-cli/src/providers        |   54.01 |    75.51 |   17.39 |   54.01 |                           
  aptos.ts                     |   53.65 |      100 |       0 |   53.65 | ...70,78-85,91-92,101-123 
  evm.ts                       |   46.03 |      100 |       0 |   46.03 | 20,31-63                  
  index.ts                     |   83.03 |    72.72 |      80 |   83.03 | 50-51,189-224             
  solana.ts                    |   50.42 |      100 |       0 |   50.42 | ...-71,79-85,89-90,99-117 
  sui.ts                       |   64.28 |      100 |       0 |   64.28 | 10-14                     
  ton.ts                       |   14.58 |      100 |       0 |   14.58 | 22-144                    
 ccip-config/src               |   97.75 |    92.85 |   96.87 |   97.75 |                           
  errors.ts                    |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  lookup.ts                    |   98.06 |    90.47 |     100 |   98.06 | 63-64,204-205             
  registry.ts                  |   96.42 |     92.1 |    92.3 |   96.42 | 106-110,193-197,213       
 ccip-config/src/chains/aptos  |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  mainnet.ts                   |     100 |      100 |     100 |     100 |                           
  testnet.ts                   |     100 |      100 |     100 |     100 |                           
 ccip-config/src/chains/evm    |     100 |      100 |     100 |     100 |                           
  mainnet.ts                   |     100 |      100 |     100 |     100 |                           
  testnet.ts                   |     100 |      100 |     100 |     100 |                           
 ccip-config/src/chains/solana |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  mainnet.ts                   |     100 |      100 |     100 |     100 |                           
  testnet.ts                   |     100 |      100 |     100 |     100 |                           
 ccip-config/src/chains/sui    |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  mainnet.ts                   |     100 |      100 |     100 |     100 |                           
  testnet.ts                   |     100 |      100 |     100 |     100 |                           
 ccip-config/src/chains/ton    |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  mainnet.ts                   |     100 |      100 |     100 |     100 |                           
  testnet.ts                   |     100 |      100 |     100 |     100 |                           
 ccip-sdk/src                  |   93.25 |    88.59 |   92.98 |   93.25 |                           
  chain.ts                     |    92.7 |       84 |   71.42 |    92.7 | ...30,249-287,575,633-642 
  commits.ts                   |     100 |       90 |     100 |     100 | 35,52                     
  execution.ts                 |   84.61 |      100 |      75 |   84.61 | 122-143                   
  explorer.ts                  |     100 |      100 |     100 |     100 |                           
  extra-args.ts                |     100 |    78.57 |     100 |     100 | 71,90,103                 
  gas.ts                       |   96.42 |    92.85 |     100 |   96.42 | 81-85                     
  http-status.ts               |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  offchain.ts                  |     100 |      100 |     100 |     100 |                           
  requests.ts                  |   78.97 |    76.92 |   85.71 |   78.97 | ...02-303,307-308,331-352 
  supported-chains.ts          |     100 |      100 |     100 |     100 |                           
  types.ts                     |     100 |      100 |     100 |     100 |                           
  utils.ts                     |   95.11 |    90.76 |     100 |   95.11 | ...51,515-516,532,597-605 
 ccip-sdk/src/api              |     100 |    94.73 |     100 |     100 |                           
  index.ts                     |     100 |    94.73 |     100 |     100 | 145                       
 ccip-sdk/src/aptos            |   57.83 |    68.53 |      60 |   57.83 |                           
  exec.ts                      |   29.31 |      100 |       0 |   29.31 | 18-58                     
  hasher.ts                    |   76.31 |       80 |   66.66 |   76.31 | 19-38,52-58               
  index.ts                     |   58.82 |     71.6 |   62.22 |   58.82 | ...02-737,741-834,838-849 
  logs.ts                      |   78.52 |    57.44 |      75 |   78.52 | ...90-196,200-233,264-268 
  send.ts                      |    25.2 |      100 |       0 |    25.2 | 10-51,62-79,92-123        
  token.ts                     |   23.75 |       75 |     100 |   23.75 | 35-156                    
  types.ts                     |   69.72 |      100 |       0 |   69.72 | 25-32,77-101              
  utils.ts                     |     100 |      100 |     100 |     100 |                           
 ccip-sdk/src/errors           |   80.94 |    76.61 |   49.55 |   80.94 |                           
  CCIPError.ts                 |     100 |      100 |     100 |     100 |                           
  codes.ts                     |     100 |      100 |     100 |     100 |                           
  index.ts                     |     100 |      100 |     100 |     100 |                           
  recovery.ts                  |     100 |      100 |     100 |     100 |                           
  specialized.ts               |   73.21 |    71.91 |   46.72 |   73.21 | ...39,1647-1656,1664-1673 
  utils.ts                     |   94.52 |    77.77 |     100 |   94.52 | 16,18,23,25               
 ccip-sdk/src/evm              |   65.04 |    78.82 |   62.85 |   65.04 |                           
  const.ts                     |     100 |      100 |     100 |     100 |                           
  errors.ts                    |   82.48 |    78.46 |     100 |   82.48 | ...55-157,188-195,198-216 
  hasher.ts                    |     100 |     87.5 |     100 |     100 | 122                       
  index.ts                     |   58.74 |    84.61 |   58.49 |   58.74 | ...05,1309-1382,1386-1435 
  logs.ts                      |   33.99 |    46.66 |      25 |   33.99 | ...13-214,229-258,274-302 
  messages.ts                  |     100 |      100 |     100 |     100 |                           
  offchain.ts                  |    80.4 |    53.33 |      75 |    80.4 | ...45-147,151-165,191-196 
 ccip-sdk/src/evm/viem         |   77.72 |       92 |   69.23 |   77.72 |                           
  client-adapter.ts            |     100 |     92.3 |     100 |     100 | 48                        
  index.ts                     |     100 |      100 |     100 |     100 |                           
  wallet-adapter.ts            |   63.09 |     90.9 |   55.55 |   63.09 | ...6,53-73,91-124,131-157 
 ccip-sdk/src/hasher           |   94.29 |    78.94 |     100 |   94.29 |                           
  common.ts                    |     100 |      100 |     100 |     100 |                           
  hasher.ts                    |     100 |    66.66 |     100 |     100 | 19                        
  index.ts                     |     100 |      100 |     100 |     100 |                           
  merklemulti.ts               |   93.43 |       78 |     100 |   93.43 | ...59-260,306-307,315-316 
 ccip-sdk/src/solana           |   51.42 |    64.25 |   55.81 |   51.42 |                           
  cleanup.ts                   |   12.22 |      100 |       0 |   12.22 | 29-229                    
  exec.ts                      |    9.27 |      100 |       0 |    9.27 | ...66-341,343-382,384-496 
  hasher.ts                    |   96.58 |    81.81 |     100 |   96.58 | 67-70                     
  index.ts                     |   70.24 |    68.55 |   64.15 |   70.24 | ...11,1415-1439,1443-1464 
  logs.ts                      |   74.19 |    27.27 |     100 |   74.19 | ...,50-51,53-54,56-88,119 
  offchain.ts                  |   78.87 |     64.7 |      50 |   78.87 | ...,96-97,110-111,126-142 
  patchBorsh.ts                |   65.06 |    57.14 |      75 |   65.06 | 30-49,65-66,72-78         
  send.ts                      |   14.84 |      100 |       0 |   14.84 | ...63-252,265-331,333-384 
  types.ts                     |   74.46 |      100 |       0 |   74.46 | 36-47                     
  utils.ts                     |   54.14 |    77.77 |      60 |   54.14 | ...71-284,326-389,395-410 
 ccip-sdk/src/sui              |   31.15 |    76.47 |   11.11 |   31.15 |                           
  discovery.ts                 |   16.56 |      100 |       0 |   16.56 | 18-34,44-157              
  events.ts                    |   30.21 |      100 |       0 |   30.21 | ...83-154,199-288,296-321 
  hasher.ts                    |   98.16 |    66.66 |     100 |   98.16 | 33,49                     
  index.ts                     |   33.68 |       80 |     7.5 |   33.68 | ...36-737,741-742,746-747 
  objects.ts                   |   12.77 |      100 |       0 |   12.77 | ...05-146,157-207,218-360 
 ccip-sdk/src/sui/manuallyExec |   39.46 |      100 |       0 |   39.46 |                           
  encoder.ts                   |   47.67 |      100 |       0 |   47.67 | 42-86                     
  index.ts                     |    34.3 |      100 |       0 |    34.3 | 48-137                    
 ccip-sdk/src/ton              |   88.11 |    87.32 |   73.52 |   88.11 |                           
  exec.ts                      |     100 |      100 |     100 |     100 |                           
  hasher.ts                    |   77.95 |    77.77 |      75 |   77.95 | 99-107,155-186            
  index.ts                     |   93.81 |    88.23 |   67.39 |   93.81 | ...56,1060-1061,1065-1066 
  logs.ts                      |     100 |    98.52 |     100 |     100 | 56                        
  types.ts                     |   78.41 |    69.23 |   66.66 |   78.41 | ...-76,94,121-134,136-139 
  utils.ts                     |   75.98 |       75 |     100 |   75.98 | ...55-261,273-327,329-332 
-------------------------------|---------|----------|---------|---------|---------------------------

@aelmanaa aelmanaa marked this pull request as draft January 6, 2026 19:56
@andrevmatos andrevmatos deleted the feat/ccip-config-registry branch January 12, 2026 16:56
@andrevmatos andrevmatos restored the feat/ccip-config-registry branch January 12, 2026 17:06
@andrevmatos andrevmatos reopened this Jan 12, 2026
@andrevmatos andrevmatos deleted the feat/ccip-config-registry branch January 12, 2026 17:09
@andrevmatos andrevmatos restored the feat/ccip-config-registry branch January 12, 2026 17:12
@andrevmatos andrevmatos reopened this Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants